#include "Configure.h" 

#include <algorithm> 

/**
* @brief Add an item to configuration store. Duplicate item will be ignored
* @param str item to be stored
* @return the index of added configuration item
*/
int Configure::addItem(std::string str)
{
    std::vector<std::string>::const_iterator vi = std::find(vItems.begin(), vItems.end(), str);
    if (vi != vItems.end())
        return vi - vItems.begin();

    vItems.push_back(str);
    return vItems.size() - 1;
}

/**
* @brief Return the configure item at specified index.
* If the index is out of range, "" will be returned
* @param index the index of item
* @return the item at specified index
*/
std::string Configure::getItem(int index)
{
    if (index >= vItems.size())
        return "";
    else
        return vItems.at(index);
}

/// Retrieve the information about how many configuration items we have had 
int Configure::getSize()
{
    return vItems.size();
}